const OSS = require('ali-oss');
const path = require('path')
const client = new OSS({
    // 以华南3（广州）为例，region填写为oss-cn-guangzhou。
    region: '你的region',
    // 阿里云账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维，请登录RAM控制台创建RAM用户。
    accessKeyId: 'LTAI5tK2nKMoX6XRzLdPe6p8',
    accessKeySecret: 'qfsODryv7Wml5uDvYlxwWViS3PNXrk',
    // 填写待配置跨域资源共享规则的Bucket名称。
    bucket: 'restaurant-imgs'
});

const rules = [{
    // 指定允许跨域请求的来源，支持通配符星号（*），表示允许所有的来源域。
    allowedOrigin: 'https://restaurant-imgs.oss-cn-wulanchabu.aliyuncs.com',
    // 指定允许的跨域请求方法，支持GET、PUT、DELETE、POST和HEAD方法。
    allowedMethod: 'GET',
    // 指定允许跨域请求的响应头。建议无特殊情况下将此项设置为通配符星号（*）。
    allowedHeader: '*',
    // 指定允许用户从应用程序中访问的响应头，例如一个JavaScript的XMLHttpRequest对象。不允许使用通配符星号（*）。
    exposeHeader: 'Content-Length',
    // 指定浏览器对特定资源的预取（OPTIONS）请求返回结果的缓存时间，单位为秒。
    maxAgeSeconds: '10'
}];
// 最多允许设置10条跨域资源共享规则。如果配置了相同的规则，则已存在的规则将被覆盖。
const putResult = await client.putBucketCORS('restaurant-imgs', rules);

async function put() {
    try {
        // 填写OSS文件完整路径和本地文件的完整路径。OSS文件完整路径中不能包含Bucket名称。
        // 如果本地文件的完整路径中未指定本地路径，则默认从示例程序所属项目对应本地路径中上传文件。
        const result = await client.put('存在oss的名称，可不带后缀', path.normalize('../../../vue3+TS后台管理系统/vue3_ts_cms/src/assets/logo.png'));;   
        console.log(result);
    } catch (e) {
        console.log(e);
    }
}
 put()// 调用